## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10

General statistics

# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 43432
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535300 SRR13535304 SRR13535302 
##     7431251     7870063     9246891    11429276     4943888     7587191

Create DDS objects

# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 43432 with 0 metadata columns"
## [1] "DESeqDataSet object of length 14275 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
##             experimental_class_type                   regime         treatment
##                            <factor>                 <factor>       <character>
## SRR13535276                       A in space without gravity without nanoceria
## SRR13535278                       A in space without gravity without nanoceria
## SRR13535280                       A in space without gravity without nanoceria
## SRR13535300                       E                  on land without nanoceria
## SRR13535304                       E                  on land without nanoceria
## SRR13535302                       E                  on land without nanoceria

Sample-to-sample comparisons

# Transform data (blinded rlog)
rld <- get_transformed_data(dds)

PCA plot

pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
##                            PC1     PC2     PC3      PC4      PC5       PC6
## Standard deviation     42.2062 36.7569 26.4782 20.41911 18.57696 1.042e-13
## Proportion of Variance  0.3876  0.2940  0.1526  0.09073  0.07509 0.000e+00
## Cumulative Proportion   0.3876  0.6816  0.8342  0.92491  1.00000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
  geom_point() +
  geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
  scale_color_manual(values = colors_default) +
  scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap

pheatmap(
  cor(rld$matrix),
  annotation_col = as.data.frame(colData(dds)) %>% select(regime),
  color = brewer.pal(8, 'YlOrRd')
)

Wald test results

# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
##             experimental_class_type                   regime         treatment        sizeFactor
##                            <factor>                 <factor>       <character>         <numeric>
## SRR13535276                       A in space without gravity without nanoceria 0.890351911081058
## SRR13535278                       A in space without gravity without nanoceria   1.2723878102654
## SRR13535280                       A in space without gravity without nanoceria  1.01177721722733
## SRR13535300                       E                  on land without nanoceria  1.80577902589679
## SRR13535304                       E                  on land without nanoceria 0.544609903431417
## SRR13535302                       E                  on land without nanoceria 0.840265447856851
# Wald test results
res <- results(
  dds_full,
  contrast = c('experimental_class_type', condition, control),
  alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 14275 rows and 6 columns
##                            baseMean     log2FoldChange             lfcSE               stat              pvalue               padj
##                           <numeric>          <numeric>         <numeric>          <numeric>           <numeric>          <numeric>
## ENSMUSG00000025900 6.72355564809091  -5.27907968302405  1.94697331145868  -2.71142888911453 0.00669939092191819 0.0977380527099574
## ENSMUSG00000098104 4.04777257555554  0.918393906549311  1.12706657629883  0.814853288938103   0.415156293638653                 NA
## ENSMUSG00000033845 135.106665011797 -0.114314427504993 0.449031212840659 -0.254580136605244   0.799047402489011  0.924692806190793
## ENSMUSG00000102275  2.4476791038974  -0.28027599054799  1.51090675966215 -0.185501844343235   0.852835433794831                 NA
## ENSMUSG00000025903  127.71958979701  0.027973884922881  0.48743942914673 0.0573894585668822   0.954234960008676  0.983640816559364
## ...                             ...                ...               ...                ...                 ...                ...
## ENSMUSG00000061654 2.40509562723468   0.56151269440417  2.31000796838754  0.243078249983754   0.807944779973702                 NA
## ENSMUSG00000079834 37.1708875153352   1.08937820848042 0.837423437875257   1.30086902182298   0.193303291295403  0.520334059851999
## ENSMUSG00000069049 1.13507018762861  -3.73308799195748  3.06618823457661  -1.21750124465955   0.223413563160865                 NA
## ENSMUSG00000069045 1.94385341784525  -4.48245904192134  2.16591816414958  -2.06954219975404  0.0384952356010428                 NA
## ENSMUSG00000096768 261.628722500515  0.530586415481487 0.641518833762957   0.82707846996358   0.408192586463828  0.721909795954029
mcols(res)
## DataFrame with 6 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MLE): experimental_class_type A vs E
## lfcSE               results         standard error: experimental class type A vs E
## stat                results         Wald statistic: experimental class type A vs E
## pvalue              results      Wald test p-value: experimental class type A vs E
## padj                results                                   BH adjusted p-values
summary(res)
## 
## out of 14275 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 283, 2%
## LFC < 0 (down)     : 183, 1.3%
## outliers [1]       : 178, 1.2%
## low counts [2]     : 2491, 17%
## (mean count < 5)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 178 rows and 6 columns
##                            baseMean     log2FoldChange            lfcSE                stat    pvalue      padj
##                           <numeric>          <numeric>        <numeric>           <numeric> <numeric> <numeric>
## ENSMUSG00000067780 449.463885209604  -2.56912503369463 1.41465476098212   -1.81607916260149        NA        NA
## ENSMUSG00000025981 202.895900413479 -0.331200438425511 1.14505457181251    -0.2892442391643        NA        NA
## ENSMUSG00000038349 137.409224779025  -4.11798275514609 1.21117094069276   -3.40000128536003        NA        NA
## ENSMUSG00000026024 63.7313106025143  -3.71503868887985 1.23407543673224   -3.01038216814124        NA        NA
## ENSMUSG00000025964 364.841597937862  -6.63446437591557 1.40730185285522   -4.71431510052742        NA        NA
## ...                             ...                ...              ...                 ...       ...       ...
## ENSMUSG00000085669 27.1634251862515  -6.61880595420033 3.41639299627773   -1.93736667924672        NA        NA
## ENSMUSG00000042595 85.9906429710052 -0.057377363511326 1.26273584773735 -0.0454389281924151        NA        NA
## ENSMUSG00000031274 57.7295627090399  -1.34224379697914 1.20099695072727   -1.11760799739444        NA        NA
## ENSMUSG00000043518 98.6309827509387  -23.9555393201487 3.90730169306791   -6.13096740460279        NA        NA
## ENSMUSG00000059493 170.477814253401  -1.48150453395576 1.65708876101296  -0.894040541950293        NA        NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 2491 rows and 6 columns
##                            baseMean    log2FoldChange            lfcSE               stat             pvalue      padj
##                           <numeric>         <numeric>        <numeric>          <numeric>          <numeric> <numeric>
## ENSMUSG00000098104 4.04777257555554 0.918393906549311 1.12706657629883  0.814853288938103  0.415156293638653        NA
## ENSMUSG00000102275  2.4476791038974 -0.28027599054799 1.51090675966215 -0.185501844343235  0.852835433794831        NA
## ENSMUSG00000098201 2.31792316350187 -1.06704387285368 1.74331217335386 -0.612078484371997  0.540485831951131        NA
## ENSMUSG00000097797   2.200860318904 0.544284247351846 1.88656079669142  0.288506073224035  0.772959382305116        NA
## ENSMUSG00000079671 2.73980664914685  0.36382624425652 1.43282613646106  0.253922115878718  0.799555728625726        NA
## ...                             ...               ...              ...                ...                ...       ...
## ENSMUSG00000081137 2.57139887069203  4.72539121655869 2.06054449743679   2.29327307536276 0.0218322883308133        NA
## ENSMUSG00000035299 4.26723133187588  1.48313136031172 1.85684793801469  0.798736035379107  0.424443487094305        NA
## ENSMUSG00000061654 2.40509562723468  0.56151269440417 2.31000796838754  0.243078249983754  0.807944779973702        NA
## ENSMUSG00000069049 1.13507018762861 -3.73308799195748 3.06618823457661  -1.21750124465955  0.223413563160865        NA
## ENSMUSG00000069045 1.94385341784525 -4.48245904192134 2.16591816414958  -2.06954219975404 0.0384952356010428        NA

Shrunken LFC results

plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
  dds_full,
  coef = str_c('experimental_class_type_', condition, '_vs_', control),
  type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 14275 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE              pvalue               padj
##                           <numeric>           <numeric>         <numeric>           <numeric>          <numeric>
## ENSMUSG00000025900 6.72355564809091   -0.31001770618322  0.64572207997742 0.00669939092191819 0.0996973650576057
## ENSMUSG00000098104 4.04777257555554   0.156251717318304 0.480893018259275   0.415156293638653                 NA
## ENSMUSG00000033845 135.106665011797 -0.0622902876032541 0.333888130638184   0.799047402489011  0.925626855505646
## ENSMUSG00000102275  2.4476791038974 -0.0259866062359451 0.470831706856148   0.852835433794831                 NA
## ENSMUSG00000025903  127.71958979701  0.0150821819199456 0.346763162870092   0.954234960008676  0.983876840601549
## ...                             ...                 ...               ...                 ...                ...
## ENSMUSG00000061654 2.40509562723468  0.0251804285287201 0.483606772815813   0.807944779973702                 NA
## ENSMUSG00000079834 37.1708875153352   0.315256541399395  0.52803994245203   0.193303291295403  0.521032050363089
## ENSMUSG00000069049 1.13507018762861 -0.0804099571056926 0.501707190137518   0.223413563160865                 NA
## ENSMUSG00000069045 1.94385341784525  -0.195721769503875 0.546893809926116  0.0384952356010428                 NA
## ENSMUSG00000096768 261.628722500515   0.208294470757223 0.424298821798537   0.408192586463828  0.722956808383144
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MAP): experimental class type A vs E
## lfcSE               results           posterior SD: experimental class type A vs E
## pvalue              results      Wald test p-value: experimental class type A vs E
## padj                results                                   BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
## 
## out of 14275 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 273, 1.9%
## LFC < 0 (down)     : 178, 1.2%
## outliers [1]       : 178, 1.2%
## low counts [2]     : 2214, 16%
## (mean count < 4)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 178 rows and 5 columns
##                            baseMean       log2FoldChange             lfcSE    pvalue      padj
##                           <numeric>            <numeric>         <numeric> <numeric> <numeric>
## ENSMUSG00000067780 449.463885209604   -0.266441555518191 0.581781376460456        NA        NA
## ENSMUSG00000025981 202.895900413479  -0.0504628369071744 0.456567013890924        NA        NA
## ENSMUSG00000038349 137.409224779025    -3.21135035701177   1.4768344614606        NA        NA
## ENSMUSG00000026024 63.7313106025143    -2.54426444913842  1.74637484602938        NA        NA
## ENSMUSG00000025964 364.841597937862    -5.95320678133029  1.52373476860405        NA        NA
## ...                             ...                  ...               ...       ...       ...
## ENSMUSG00000085669 27.1634251862515  -0.0661584362025747 0.499990908653935        NA        NA
## ENSMUSG00000042595 85.9906429710052 -0.00615966851453763 0.459727354818476        NA        NA
## ENSMUSG00000031274 57.7295627090399    -0.19739651183202 0.510426917418106        NA        NA
## ENSMUSG00000043518 98.6309827509387  -0.0508814895674652 0.497543068315669        NA        NA
## ENSMUSG00000059493 170.477814253401   -0.114908958986714 0.494986497198064        NA        NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs E 
## Wald test p-value: experimental class type A vs E 
## DataFrame with 2214 rows and 5 columns
##                            baseMean      log2FoldChange             lfcSE             pvalue      padj
##                           <numeric>           <numeric>         <numeric>          <numeric> <numeric>
## ENSMUSG00000098104 4.04777257555554   0.156251717318304 0.480893018259275  0.415156293638653        NA
## ENSMUSG00000102275  2.4476791038974 -0.0259866062359451 0.470831706856148  0.852835433794831        NA
## ENSMUSG00000098201 2.31792316350187 -0.0793007532656044 0.484236970038564  0.540485831951131        NA
## ENSMUSG00000097797   2.200860318904  0.0353731478759256   0.4793173199521  0.772959382305116        NA
## ENSMUSG00000079671 2.73980664914685  0.0398208131907963 0.468237061186201  0.799555728625726        NA
## ...                             ...                 ...               ...                ...       ...
## ENSMUSG00000081137 2.57139887069203   0.227969394121044 0.567999148374236 0.0218322883308133        NA
## ENSMUSG00000035299 4.26723133187588  0.0926506167016492 0.491431088842307  0.424443487094305        NA
## ENSMUSG00000061654 2.40509562723468  0.0251804285287201 0.483606772815813  0.807944779973702        NA
## ENSMUSG00000069049 1.13507018762861 -0.0804099571056926 0.501707190137518  0.223413563160865        NA
## ENSMUSG00000069045 1.94385341784525  -0.195721769503875 0.546893809926116 0.0384952356010428        NA

Visualizing results

Heatmaps

# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7], 
         color = brewer.pal(8, 'YlOrRd'), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         scale = 'row',
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7], 
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime), 
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

Volcano plots

# Unshrunken LFC
res_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

GSEA (all)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info

sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
##  [1] grid      parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] VennDiagram_1.6.20          futile.logger_1.4.3         fgsea_1.12.0                Rcpp_1.0.3                  RColorBrewer_1.1-2          pheatmap_1.0.12             DESeq2_1.26.0               SummarizedExperiment_1.16.1 DelayedArray_0.12.3         BiocParallel_1.20.1         matrixStats_0.57.0          Biobase_2.46.0              GenomicRanges_1.38.0        GenomeInfoDb_1.22.1         IRanges_2.20.2              S4Vectors_0.24.4            BiocGenerics_0.32.0         scales_1.1.1                forcats_0.4.0               stringr_1.4.0               dplyr_1.0.2                 purrr_0.3.3                 readr_1.3.1                 tidyr_1.0.0                 tibble_3.1.0                ggplot2_3.3.3               tidyverse_1.2.1            
## 
## loaded via a namespace (and not attached):
##  [1] colorspace_1.4-1       ellipsis_0.3.0         htmlTable_1.13.3       XVector_0.26.0         base64enc_0.1-3        rstudioapi_0.10        farver_2.1.0           bit64_0.9-7            mvtnorm_1.1-1          apeglm_1.8.0           AnnotationDbi_1.48.0   fansi_0.4.0            lubridate_1.7.4        xml2_1.2.2             splines_3.6.3          geneplotter_1.64.0     knitr_1.25             Formula_1.2-3          jsonlite_1.6           broom_0.7.5            annotate_1.64.0        cluster_2.1.0          png_0.1-7              compiler_3.6.3         httr_1.4.1             backports_1.1.5        assertthat_0.2.1       Matrix_1.2-18          cli_1.1.0              formatR_1.7            acepack_1.4.1          htmltools_0.5.1.1      tools_3.6.3            coda_0.19-3            gtable_0.3.0           glue_1.4.2             GenomeInfoDbData_1.2.2 fastmatch_1.1-0        bbmle_1.0.23.1         cellranger_1.1.0       jquerylib_0.1.3        vctrs_0.3.4            xfun_0.22              rvest_0.3.5            lifecycle_0.2.0        XML_3.99-0.3           MASS_7.3-51.5          zlibbioc_1.32.0        hms_0.5.2              lambda.r_1.2.4         yaml_2.2.0             memoise_1.1.0          gridExtra_2.3          emdbook_1.3.12         sass_0.3.1             bdsmatrix_1.3-4        rpart_4.1-15           latticeExtra_0.6-29    stringi_1.4.3          RSQLite_2.2.1          genefilter_1.68.0      checkmate_1.9.4        rlang_0.4.8            pkgconfig_2.0.3        bitops_1.0-6           evaluate_0.14          lattice_0.20-38        labeling_0.3           htmlwidgets_1.5.1      bit_1.1-15.1           tidyselect_1.1.0       plyr_1.8.4             magrittr_1.5           R6_2.4.0               generics_0.0.2         Hmisc_4.3-0            DBI_1.1.0              pillar_1.5.1           haven_2.2.0            foreign_0.8-75         withr_2.1.2            survival_3.1-8         RCurl_1.95-4.12        nnet_7.3-12            modelr_0.1.5           crayon_1.3.4           futile.options_1.0.1   utf8_1.1.4             rmarkdown_2.7          jpeg_0.1-8.1           locfit_1.5-9.4         readxl_1.3.1           data.table_1.13.6      blob_1.2.1             digest_0.6.27          xtable_1.8-4           numDeriv_2016.8-1.1    munsell_0.5.0          bslib_0.2.4